1. Technical Field
The present invention is directed to execution of programs on grid computing systems. More specifically, the present invention is directed to a system and method of executing monolithic programs on grid computing systems.
2. Description of Related Art
With the advent of the Internet and the availability of powerful computers and high speed networks, geographically dispersed computers are beginning to be used as one single unified computing resource. This computing resource is popularly referred to as grid computing (also known as meta-computing, scalable computing, global computing, Internet computing and peer-to-peer computing). In grid computing, resources such as supercomputers, storage systems, data sources etc. which are owned by different organizations are pooled together to solve large-scale computational and data intensive problems in science, engineering and commerce.
To allow for an effective use of grid computing, a grid broker is used. The grid broker performs resource discovery and scheduling of tasks on the distributed grid resources. Thus, if the grid broker receives a request from a computer in New York to process an application program, the grid broker may, based on a resource discovery result, schedule the application program to be processed by a computer in Paris, France.
This concept works fine with application programs that are grid-computing compatible or have been designed to be processed by any computer system on a grid computing system. However, many older application programs (i.e., legacy programs) are monolithic. A monolithic application program is a program that does not rely on outside resources and cannot access or provide services to other applications in a dynamic and cooperative manner. An example of such an application program is a program that may link to specific (local) libraries or read from and/or write to specific remote filesystems etc.
Due to the nature of monolithic application programs, they may not run effectively on a grid computing system without modifications. To modify a monolithic program, however, requires that software personnel acquire intimate knowledge of the program. In some instances, this may be quite a time-consuming and work-intensive endeavor, especially, when there is only an object code of the program available and all software personnel who may have designed and developed the program cannot be located.
Consequently, what is needed is an apparatus, system and method of executing a monolithic application program successfully on a grid computing system without modifications.